package com.wzcl.app.service;

import com.wzcl.app.dao.model.AppUser;
import com.wzcl.app.dao.model.Course;
import com.wzcl.app.dao.model.UserCourse;
import com.wzcl.app.model.common.MyPage;
import com.wzcl.app.model.dto.UserCourseDto;
import com.wzcl.app.model.dto.UserCoursePageDto;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface UserCourseService {

    UserCourse getUserCourseById(Integer id);

    UserCourse findByPhoneAndCourseIdAndSpec(String userPhone, Integer courseId, String spec);

    UserCourse checkUserCourse(String userPhone, Integer id);

    List<UserCourse> getUserCourseList(UserCourseDto userCourseDto);

    MyPage<UserCourse> getUserCoursePage(UserCourseDto userCourseDto);

    void addUserCourseByMap(AppUser user, Map<Integer, Course> courseMap, Map<Integer, Set<String>> specMap);

    void delUserCourseByMap(AppUser user, Map<Integer, Course> courseMap, Map<Integer, Set<String>> specMap);

    List<UserCourse> findByPhoneAndCourseId(String phone, Integer courseId);

    String getUserCourse(UserCoursePageDto userCoursePageDto);

    /**
     * 查询指定用户已购买的课程
     * @param userId 用户id
     * @return 返回已购买的课程
     */
    List<Course> retrieveUserCourseByUserId(Integer userId);
}
